/*--------------------------------------------------------------------------
I2C.H
这个头文件主要是模拟I2C总线的发送和接收还有AT24C02的使用，
因为51单片机本身不带有I2C的总线的功能。
	  
	  本文件分为以下6个接口：
	  1、I2C总线的起始信号
	  2、I2C总线的结束信号
	  3、I2C总线发送数据
	  4、I2C总线接收数据
	  5、AT24C02写数据
	  6、AT24C02读数据
日期：2015年9月27日
开发者：杨源鑫
备注：
	  用户在使用该程序模块的时候只需调用最后两个函数即可，也就是AT24C02
	  的函数。
--------------------------------------------------------------------------*/

#ifndef __I2C_H
#define __I2C_H
#include <reg51.h>
#include "IIC.h"

sbit SCL = P2 ^ 1; //时钟线
sbit SDA = P2 ^ 0; //地址线

/**
 * 函数: void At24c02Write(unsigned char addr,unsigned char dat);
 * 函数功能:AT24C02写数据.
 * 使用方法：用户想要往里写数据的话就调用本函数，传入地址和数据即可
 **/

void At24c02Write(unsigned char addr, unsigned char dat);

/**
 * 函数: unsigned char At24c02Read(unsigned char addr);
 * 函数功能:AT24C02读数据.
 * 使用方法：用户想要读数据的话就调用本函数，传入地址即可
 **/

unsigned char At24c02Read(unsigned char addr);

/**
 * 函数: void I2C_Start_signal(void);
 * 函数功能:I2C总线的起始信号
 **/

void I2C_Start_signal(void);

/**
 * 函数: void I2C_Stop_signal(void);
 * 函数功能:I2C总线的结束信号
 **/

void I2C_Stop_signal(void);

/**
 * 函数: unsigned char I2C_SendByte(unsigned char dat, unsigned char ack);
 * 函数功能:I2C总线的写数据
 **/

unsigned char I2C_SendByte(unsigned char dat, unsigned char ack);

/**
 * 函数: unsigned char I2cReadByte();
 * 函数功能:I2C总线的读数据
 **/
unsigned char I2cReadByte();

/**
 * 函数: void Delay10us();
 * 函数功能:10us延时
 **/

void Delay10us();

#endif //__I2C_H